Site cover image

Site icon imageSen(Qian)’s Memo

This website is Donglin Qian (Torin Sen)’s memo, especially about machine learning papers and competitive programming.

2017-NIPS-[nnPU] Positive-Unlabeled Learning with Non-Negative Risk Estimator

https://proceedings.neurips.cc/paper/2017/hash/7cce53cf90577442771720a370c3c723-Abstract.html

Introduction

先行研究では、📄Arrow icon of a page link2014-NIPS-[Ramp]Analysis of Learning from Positive and Unlabeled Data📄Arrow icon of a page link2015-ICML-[uPU] Convex Formulation for Learning from Positive and Unlabeled Data📄Arrow icon of a page link2016-NIPS-Theoretical Comparisons of Positive-Unlabeled Learning against Positive-Negative Learning のようにCost-sensitiveな手法は大きな改善を導いた。

しかし、表現力が高いモデル=DNNなどでは、経験損失が負になってしまうという問題が発生する。損失関数に上界が存在しない場合、PUの導いてきた式で負項が非常に小さく、その結果全体でマイナスになってしまうことがある。この研究は、経験損失の下限が非負にならないように、clipした

Unbiased PU Learning

問題設定

📄Arrow icon of a page link2014-NIPS-[Ramp]Analysis of Learning from Positive and Unlabeled Data と同じ

そして、ここではCase Control、PositiveはpP(x)p_P(x)の分布から、UnlabeledはpU(x)p_U(x)の分布からそれぞれ独立にサンプリングする。

リスク推定

先行研究📄Arrow icon of a page link2014-NIPS-[Ramp]Analysis of Learning from Positive and Unlabeled Data により、以下のように計算することができる。損失関数l()l(\cdot)は負の数を受け取ると正の損失を返し、正の数を受け取ると基本0(非負)となる。

R(g)=πEP[l(g(x))]πEP[l(g(x))]+EU[l(g(x))]R(g) = \pi \mathbb{E}_P[l(g(\mathbf{x}))] - \pi \mathbb{E}_P[l(-g(\mathbf{x}))] + \mathbb{E}_U [l(-g(\mathbf{x}))]

これについて、対称的な損失やHinge損失などは式変形をすると定数項を作れることによって、凸最適化されやすいという特徴があるのが2014, 2015, 📄Arrow icon of a page link2017-MLJ-Class-prior Estimation for Learning from Positive and Unlabeled Data だった。

これらについて、PU Learningの収束するオーダーはO(1/nP+1/nU)O(1/\sqrt{n_P} + 1/\sqrt{n_U})である

Non-negative PU Learning

関数について、以下のようにノルムを考えられる。つまり、すべての値について関数のp乗を積分し割ったものである

Image in a image block

L∞ノルムならば、以下のようになる。

f=supxRdf(x)||f||_{\infty} = \sup_{\mathbf{x} \in \mathbb{R}^d} |f(\mathbf{x})|

識別器のクラスgGg \in \mathcal{G}のL∞ノルムが常に有界ならば、Rademacher複雑度R(G)=O(1)\mathcal{R}(G)=O(1)となり、サンプルの数などに影響はされない。ノルムが有界である識別器の例としては、とりうる重みに制約がかかっている場合。

そして、llは上限がなければ、上の定義したR(g)R(g)は、マイナスの項で大きい絶対値を引くと経験損失がマイナスになり、最終的にマイナス無限大へR(g)R(g)は発散してしまうということになる。これは特にモデルが表現力高い=DNNのようなもので起きる。

というわけで、Non-negative Risk Estimatorを提案する。

R(g)=πEP[l(g(x))]+max(0,πEP[l(g(x))]+EU[l(g(x))])R(g) = \pi \mathbb{E}_P[l(g(\mathbf{x}))] + \max(0, - \pi \mathbb{E}_P[l(-g(\mathbf{x}))] + \mathbb{E}_U [l(-g(\mathbf{x}))])

ここでは特に、以下の部分を非負にしている。

Positiveのデータ分布に対して、ラベルがNegativeだとみなした時に招く損失が大きいほど、πEP[l(g(x))]- \pi \mathbb{E}_P[l(-g(\mathbf{x}))]が最適化をする上で小さくなる。DNNのような高い学習力を持つものは、これが小さくなるように学習できて「しまう」から、問題が起きたといえる。

πEP[l(g(x))]+EU[l(g(x))]=(1π)EN[l(g(x))]- \pi \mathbb{E}_P[l(-g(\mathbf{x}))] + \mathbb{E}_U [l(-g(\mathbf{x}))] = (1 - \pi) \mathbb{E}_N[l(-g(\mathbf{x}))]

アルゴリズム

Image in a image block

実際では、πsuptmaxyl(t,y)β0\pi \cdot \sup_t \max_y l(t,y) \geq \beta \geq 0を用いて、

  • 損失がβ- \betaを上回るのならばそのまま全体の損失関数で勾配降下法で計算する。
  • 損失がβ- \betaを下回るのならば、過学習していることになる。負の数を導く項のGradientを逆向きにして、ある減衰率0γ10 \leq \gamma \leq 1を乗じて更新する。つまり、Gradient Ascentを行うことで過学習を防いでいる。

これによって通常のnnPUのみならず、一定量より小さいというのも実現できる。

理論解析

実験結果

DNNは6層のMLPを使用して、ReLUを活性化関数に使った。

Image in a image block

深層学習で訓練すると、高い表現力によって

次に、真のClass PriorからずれたClass Priorに設定して実験を行った。0.8から1.2倍まで変動させた。

Image in a image block

Class Priorを過小評価することはより性能を低下させるが、過大評価する場合は低下するがあmだマシという結果になった。

Class Priorは既存の分布からの判定だと実は過大評価していたという話もあいまって、よかったですね。 → 📄Arrow icon of a page link2017-MLJ-Class-prior Estimation for Learning from Positive and Unlabeled Data